/*
 * @Author: deliteam 462085920@qq.com
 * @Date: 2023-12-12 11:11:35
 * @Description:
 */
import { Message } from 'element-ui'
export function getQueryString(name) {
  //获取URL的参数，isEit
  return (
    decodeURIComponent(
      (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(
        location.href
      ) || [, ''])[1].replace(/\+/g, '%20')
    ) || null
  )
}
/**
 * 来自element Ui的message组件
 * @param {*提示语} message
 * @param {*类型 success/warning/info/error} type
 * @param {*多久后自动关闭} duration
 * @param {*关闭后的回调函数} cb
 */
function messageTips(message, type, duration, cb) {
  Message({
    message: message,
    type: type,
    duration: duration,
    onClose() {
      cb && cb()
    },
  })
}
/**
 * 日期格式化
 * @param [DateTime] date 日期对象 new Date()
 * @param [String] format 日期格式字符串
 * @return String 如："2018-01-01"
 */
function formatDate(date, format = 'YY-MM-DD HH:mm:ss') {
  var year = date.getFullYear(),
    month = date.getMonth() + 1, // 月份是从0开始的
    day = date.getDate(),
    hour = date.getHours(),
    min = date.getMinutes(),
    sec = date.getSeconds()
  var preArr = Array.apply(null, Array(10)).map(function (elem, index) {
    return '0' + index
  }) /// /开个长度为10的数组 格式为 00 01 02 03

  var newTime = format
    .replace(/YY/g, year)
    .replace(/MM/g, preArr[month] || month)
    .replace(/DD/g, preArr[day] || day)
    .replace(/hh/g, preArr[hour] || hour)
    .replace(/mm/g, preArr[min] || min)
    .replace(/ss/g, preArr[sec] || sec)

  return newTime
}
/**
 * @function 检测手机号
 * @param {Number} phone 待检测的手机号
 */
export function identifyMobile(phone) {
  if (phone) {
    let flag = /^1[3456789]\d{9}$/.test(phone)
    return flag
  }
  return true
}
/**
 * @function 检测固定电话
 * @param {String | Number} phone 待检测的固定电话号
 */
export function identifyPhone(phone) {
  if (phone) {
    let flag = /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(phone)
    return flag
  }
  return true
}
/**
 * @func 表格数据检查，为空则赋予"-"
 * @author PungsKi
 * @version 1.0
 * @param {Array} tableData 即将使用的表格数据[required]
 * @return 表格数据
 */
export function checkTableData(tableData) {
  tableData.map((data) => {
    for (const key in data) {
      if (data.hasOwnProperty(key)) {
        !data[key] && typeof data[key] !== 'number' && (data[key] = '-')
      }
    }
  })

  return tableData
}
function pictureHandle(url, type, width, height) {
  // if(!url){
  //   return '';
  // }else if(url.indexOf('_')!=-1){
  //   return url;
  // }else{
  //   let lastIndex = url.lastIndexOf(".");
  //   return url.slice(0,lastIndex)+"_"+width+"x"+height+url.slice(lastIndex);
  // }
  // 图片处理方法，url（图片路径），type（处理方式），width和height（处理的长宽）
  // zoom_xxx：等比例缩放，宽度固定，高度自适应，crop_xxx：固定宽高缩放，按短边缩放，居中裁剪，small 代表 300px，middle代表450，large代表750
  // crop_750x375,crop_750x300,crop_670x388,crop_375x150,crop_320x200,crop_200x100,crop_690x310,crop_296x212
  if (url.indexOf('.oss') > 0) {
    if (type == '') {
      return url
    } else {
      return url + '!' + type
    }
  } else {
    // type:“c”表示裁切，“x”表示缩放
    if (url.indexOf('_') == -1) {
      var lastIndex = url.lastIndexOf('.')
      if (type == 'crop_small' || type == 'crop_large') {
        type = 'c'
      } else {
        type = 'x'
      }
      return (
        url.slice(0, lastIndex) +
        '_' +
        width +
        type +
        height +
        url.slice(lastIndex)
      )
    } else {
      return url
    }
  }
}

/**
 * 富文本xiumi图片处理
 * @param {String} UEContent 富文本内容
 */
export function editorXiuMi(UEContent) {
  let submitData = {}
  let xmImgs = [] // 获取xiumi图片

  submitData.newsContent = UEContent
  submitData.wxContent = UEContent

  let imgs = UEContent.match(/<img[^>]+>/g)
  let bgImgs = UEContent.match(/background-image[^>]+>/g)

  let wxImgs = [],
    aLiImgs = [],
    xmBg = [],
    wxContent = ''
  if (imgs || bgImgs) {
    // 富文本内容中存在图片
    if (imgs) {
      // 取出已同步到微信的图片
      imgs.forEach((v, i) => {
        v.replace(
          /<img [^>]*wxcontent=['"]([^'"]+)[^>]*>/gi,
          (match, capture) => {
            wxImgs.push(capture)
          }
        )
        // 取出未同步到微信的图片
        v.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, (match, capture) => {
          aLiImgs.push(capture)
        })
      })
    }
    if (bgImgs) {
      // 取出xiumi的背景图
      bgImgs.forEach((v, i) => {
        v.replace(
          /background-image[^>]*url[(]([^)]+)[^>]*>/gi,
          (match, capture) => {
            xmBg.push(capture.replace(/&quot;/gi, ''))
          }
        )
      })
      // console.log(xmBg)
    }
    aLiImgs.forEach((v) => {
      if (v.indexOf('oss-cn-hangzhou.aliyuncs.com') == -1) {
        xmImgs.push(v)
      }
    })
    xmBg.forEach((v) => {
      if (v.indexOf('oss-cn-hangzhou.aliyuncs.com') == -1) {
        xmImgs.push(v)
      }
    })
    if (((imgs && imgs.length == wxImgs.length) || !imgs) && !bgImgs) {
      // 图片都推送到微信，而且没有背景图
      wxContent = UEContent
      wxImgs.forEach((v, i) => {
        wxContent = wxContent.replace(aLiImgs[i], v)
      })
      submitData.wxContent = wxContent
    } else {
      submitData.wxContent = ''
    }
  } else {
    submitData.wxContent = UEContent
  }
  return new Promise((resolve, reject) => {
    console.log(getQueryString('type'))
    if (xmImgs.length) {
      let config = {
        url: network.api.materialSwitchUrl,
        data: {
          urls: xmImgs.join(',,,,,'),
          hide: 1,
          party: getQueryString('type') || 0,
        },
        isLoading: true,
        loadingText: '提交中...',
      }
      network
        .request(config)
        .then((res) => {
          let newsContent = submitData.newsContent
          res.forEach((v, i) => {
            if (v != null) {
              newsContent = newsContent.replace(xmImgs[i], v)
            }
          })
          submitData.newsContent = newsContent
          resolve(submitData)
        })
        .catch((err) => {
          reject(err)
        })
    } else {
      resolve(submitData)
    }
  })
}

export { messageTips, pictureHandle }
export default {
  getQueryString,
  messageTips,
  formatDate,
  identifyMobile,
  identifyPhone,
  editorXiuMi,
}
